﻿using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Data;

namespace WPF_for_Auth.ViewModel
{
    /// <summary>
    /// 菜单
    /// </summary>
    internal partial class MenuStatus : ObservableObject
    {

        private readonly MvvmLoad _mvvmLoad;

        public MenuStatus(MvvmLoad mvvmLoad)
        {
            // 这里可以传入 MvvmLoad 实例以便访问其他状态或方法
            _mvvmLoad = mvvmLoad ?? throw new ArgumentNullException(nameof(mvvmLoad));
            // 初始化时可以设置默认值或执行其他逻辑
            InitializeMenu();
        }

        private void InitializeMenu()
        {
            // 在这里初始化菜单项
            // 例如，可以从数据库或配置文件加载菜单项
            // 这里可以添加一些默认的菜单项
        }

        /// <summary>
        /// 菜单项点击事件处理
        /// </summary>
        /// <param name="menuItemName"></param>
        [RelayCommand]
        public void MenuItemClick(string menuItemName)
        {
            // 处理菜单项点击事件
            // 这里可以根据菜单项名称执行相应的操作
            // 例如，打开对应的页面或执行特定的逻辑
            //MessageBox.Show(menuItemName);

            _mvvmLoad?.App_PageStatus.ChoosePage(menuItemName);
        }
    }

    internal class MenuShowConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value is null)
            {
                return Visibility.Hidden;
            }
            else
            {
                return Visibility.Visible; // 返回可见性
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }
}
